package com.whfc.hdc.service;

import com.whfc.common.exception.BizException;
import com.whfc.common.result.PageData;
import com.whfc.hdc.dto.AlgDeviceDataDTO;
import com.whfc.hdc.params.AlgDeviceDataLogParam;

import java.util.Date;

/**
 * @author qzexing
 * @version 1.0
 * @date 2021-07-19 17:13
 */
public interface AlgDeviceDataService {

    /**
     * 初始化设备数据
     *
     * @param sn 设备SN
     * @throws BizException 业务异常
     */
    void init(String sn) throws BizException;

    /**
     * 获取算法盒子列表
     *
     * @param pageNum  页码
     * @param pageSize 每页数量
     * @param keyword  搜索关键字
     * @return 算法盒子列表
     * @throws BizException 业务异常
     */
    PageData<AlgDeviceDataDTO> list(Integer pageNum, Integer pageSize, String keyword) throws BizException;

    /**
     * 算法盒子历史数据
     *
     * @param sn        设备SN
     * @param pageNum   页码
     * @param pageSize  每页数量
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 算法盒子历史数据
     * @throws BizException 业务异常
     */
    PageData<AlgDeviceDataDTO> getDataLog(String sn, Integer pageNum, Integer pageSize, Date startTime, Date endTime)
            throws BizException;


    /**
     * 保存算法盒子历史数据
     *
     * @param param 数据
     * @throws BizException 业务异常
     */
    void saveDataLog(AlgDeviceDataLogParam param) throws BizException;

}
